import Chess from './_components/chess';

{/* 为什么要写这篇文章 */}
每当聊到设计模式的时候，我脑袋里首先想到的是 java 这门语言。
联想到第一次学习工厂模式的疑惑和不解——明明一行代码就能实现，为什么要多写几个 class 呢？
随着不断地学习和项目经验的积累，我渐渐开始明白设计模式的重要性与必要性。
直到最近阅读《黑客与画家》，作者对设计模式的描述让我提起了深入学习模式的兴趣。

> 在面向对象编程的世界中，我们大量听到“模式”这个词，我觉得那些模式就你自己变成这个难题的人肉编译器。
> 当我在自己的程序中发现用到了模式，
> 这就表明某个地方出错了。程序的形式应该仅仅反映它所要解决的问题，代码中其他任何外加的形式都是一个信号，表明我对问题的抽象还不够深。
>
> # 《黑客与画家》 — 保罗 · 格雷厄姆

{/* 要怎么写这篇文章 */}
互联网并不乏解释各个设计模式的文章和帖子——把设计模式的代码贴出来，告知读者各个 class 充当的角色。
为了区别于这些帖子，我在文章中加入了多个设计模式互动组件，相信这种代码+互动的方式能让你更好得体会到设计模式带来的欢乐。

{/* 进入正题 */}

# 命令模式

<Chess />

# 组合模式

展示一下树解构，组件

# 享元模式

抢占资源的 demo
